Zum Hauptinhalt springen

Unity SDK

Bauen Sie AR Clip VPS in ein Unity-Projekt ein. Das SDK bestimmt die Position des Nutzers auf Ihren VPS-Karten und platziert Inhalte an der richtigen Stelle, auf Geräten mit ARKit (iOS) und ARCore (Android).

Bevor Sie beginnen​

  • Unity 2022.3 LTS oder neuer
  • Ein Testgerät mit Unterstützung für ARKit oder ARCore
  • Git LFS, wenn Sie das Beispielprojekt klonen (es enthält große Assets)

Installieren​

Wählen Sie einen von zwei Wegen.

Das Beispielprojekt klonen​

git clone https://github.com/WebAR-Studio/was-vps-unity.git

Öffnen Sie das Projekt in Unity 2022.3 oder neuer. Die Szenen in Assets/Scenes zeigen funktionierende Setups.

Über den Package Manager hinzufügen​

  1. Öffnen Sie Window → Package Manager.
  2. Klicken Sie auf + → Add package from Git URL….
  3. Fügen Sie https://github.com/WebAR-Studio/was-vps-unity.git?path=/Assets ein.

Unity lädt das SDK nach Packages/was-vps-unity herunter.

Die Szene einrichten​

  1. Erstellen oder öffnen Sie eine Szene, die für AR Foundation vorbereitet ist. Sie braucht eine AR Session und einen AR Session Origin.
  2. Fügen Sie VPSLocalisationService einem leeren GameObject hinzu. Diese Komponente führt die Lokalisierung aus.
  3. Weisen Sie im Inspector zu:
    • AR Session
    • AR Session Origin
    • die AR-Kamera und UI-Hooks, falls Sie sie brauchen (siehe Beispielszenen)
  4. Geben Sie Ihren VPS-API Key und mindestens eine Location ID ein.
  5. Optional: Schalten Sie zum Debuggen Save Images Locally oder Save Logs In File ein.
Brauchen Sie einen API-Schlüssel?

Sie erhalten ihn auf arclip.design oder per E-Mail an support@arclip.design.

Die Lokalisierung starten​

Steuern Sie die Lokalisierung aus Ihrem eigenen Skript. Fügen Sie die folgende Komponente hinzu und weisen Sie im Inspector die Referenz auf VPSLocalisationService zu.

using UnityEngine;
using WASVPS;

public class VPSBootstrap : MonoBehaviour
{
[SerializeField] private VPSLocalisationService vpsService;

private void Start()
{
vpsService.OnPositionUpdated += HandlePositionUpdated;
vpsService.OnErrorHappend += HandleError;

var settings = new SettingsWASVPS(
new[] { "your-location-id" },
failsCountToReset: 5
);

settings.ApiKey = "your-api-key";
settings.LocalizationTimeout = 2.0f;

vpsService.StartVPS(settings);
}

private void HandlePositionUpdated(LocationState state)
{
Debug.Log($"Localized at {state.Localisation.VpsPosition}");
}

private void HandleError(ErrorInfo error)
{
Debug.LogError(error.LogDescription());
}
}

Einstellungen im Inspector​

EigenschaftWas sie tutStandard
Start On AwakeStartet die Lokalisierung, wenn die Szene lädtfalse
Force Mock In EditorNutzt im Editor immer den Mock-Providertrue
Send GPSHängt die GPS-Daten des Geräts an jede VPS-Anfrage anfalse
Fails Count To ResetNach wie vielen Fehlschlägen in Folge die Sitzung zurückgesetzt wird5
Save Images LocallySpeichert aufgenommene Frames zum Debuggenfalse

Testen und debuggen​

  • Schalten Sie Force Mock In Editor ein und nutzen Sie die mitgelieferten Mock-Texturen, um ohne Gerät zu testen.
  • Rufen Sie VPSLogger.SetLogLevel(LogLevel.VERBOSE) auf, um HTTP-Anfragen, Antworten und Fehler in der Konsole zu sehen.
  • Gelingt die Lokalisierung nie, prüfen Sie, ob Ihr API-Schlüssel gültig ist und jede Location ID zu einer Ihrer VPS-Karten gehört.

Beispiele​

  • Funktionierende Beispiele finden Sie im Beispielprojekt unter Assets/Scenes/TestScene.unity und Assets/Scripts/ExampleVPS.cs.
  • Nutzen Sie VPS-Posen in Ihrer eigenen Logik: Anker erzeugen, 3D-Inhalte ausrichten oder die UI aktualisieren.

Weiter: Unity-Plattformen – Builds für Smartphones, Headsets und Brillen.